package com.qingzhou.common.core.utils;

import cn.hutool.poi.excel.ExcelWriter;
import com.qingzhou.common.core.constants.HttpConstant;
import org.noear.solon.core.handle.Context;

import java.util.List;

/**
 * Excel相关处理
 * @author xm
 */
public class ExcelUtil extends cn.hutool.poi.excel.ExcelUtil {

    /**
     * 导出 Excel
     * @param list 数据
     * @return
     */
    public static <T> void export(List<T> list) {
        Context ctx = ContextUtil.getContext();
        ctx.contentType(HttpConstant.CONTENT_TYPE_FORM);
        // 通过工具类创建 writer，默认创建 xls格式
        ExcelWriter writer = getWriter();
        // 默认的，未添加alias的属性也会写出，如果想只写出加了别名的字段，可以调用此方法排除之
        writer.setOnlyAlias(false);
        try {
            // 一次性写出内容，使用默认样式，强制输出标题
            writer.write(list, true);
            // 写出到目标流
            writer.flush(ctx.outputStream());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            writer.close();
        }
    }

}
